package com.hifar.test.entrust.service;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hifar.test.entrust.model.EntrustQRData;
import com.hifar.test.entrust.pojo.HfEnvGkEntrust;
import com.hifar.test.entrust.pojo.VO.HfEnvGkEntrustVO;
import com.hifar.test.entrust.pojo.VO.HfEnvReportTaskVO;
import com.hifar.test.entrust.pojo.VO.HfEnvGkEntrustSaveVO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 委托单 服务类
 * </p>
 *
 * @author wei
 * @since 2024-12-04 15:51:56
 */
public interface IHfEnvGkEntrustService extends IService<HfEnvGkEntrust> {
    /**
     * 手动新增试验任务
     *
     * @param manualInputTaskVO
     */
    void manualInputTask(HfEnvGkEntrustSaveVO manualInputTaskVO);

    /**
     * 更新工控委托单状态
     *
     * @param taskId
     */
    void refreshEntrustStatus(String taskId);

    /**
     * 扫描二维码新增试验任务
     *
     * @param entrustQRData 二维码数据
     */
    void saveEntrustFromQRCode(EntrustQRData entrustQRData);

    /**
     * 导入数据包
     *
     * @param fileId 附件id
     */
    void importDataPackage(String fileId) throws Exception;

    /**
     * 批量导入数据包
     *
     * @param fileIds 附件id列表
     * @return 导入结果统计
     */
    Map<String, Object> batchImportDataPackage(List<String> fileIds);

    /**
     * 分页查询
     *
     * @param page
     * @param queryWrapper
     * @return
     */
    Page<HfEnvGkEntrustVO> pageVO(Page<HfEnvGkEntrustVO> page, QueryWrapper<HfEnvGkEntrustVO> queryWrapper);

    /**
     * 查询委托下任务
     *
     * @param gkEntrustId 工控委托id
     * @return
     */
    List<HfEnvReportTaskVO> queryEntrustTaskList(String gkEntrustId);

    /**
     * 查询委托详情
     *
     * @param id
     * @return
     */
    HfEnvGkEntrustSaveVO queryVOById(String id);

    /**
     * 委托单号是否存在
     *
     * @param entrustCode 委托单号
     * @return
     */
    boolean existEntrustCode(String entrustCode);
}
